from pymongo import MongoClient
import datetime

# 连接到MongoDB
client = MongoClient('mongodb://localhost:27017/')
db = client.medical_system

# 获取admin角色
admin_role = db.roles.find_one({'name': 'admin'})

if admin_role:
    print("找到admin角色:")
    print(f"ID: {admin_role['_id']}")
    print(f"名称: {admin_role.get('displayName', 'admin')}")
    
    # 获取现有权限
    current_permissions = admin_role.get('permissions', [])
    print(f"\n当前拥有 {len(current_permissions)} 个权限")
    
    # 需要添加的文件管理相关的权限
    file_permissions = [
        'file:read',
        'file:upload',
        'file:download',
        'file:delete'
    ]
    
    # 检查是否已存在这些权限
    missing_permissions = []
    for perm in file_permissions:
        if perm not in current_permissions:
            missing_permissions.append(perm)
    
    if missing_permissions:
        print(f"\n需要添加 {len(missing_permissions)} 个文件管理权限:")
        for perm in missing_permissions:
            print(f"- {perm}")
        
        # 更新角色权限
        updated_permissions = current_permissions + missing_permissions
        
        result = db.roles.update_one(
            {'_id': admin_role['_id']},
            {'$set': {
                'permissions': updated_permissions,
                'updatedAt': datetime.datetime.utcnow()
            }}
        )
        
        if result.modified_count > 0:
            print("\n权限更新成功！")
        else:
            print("\n权限更新失败，可能权限已存在。")
    else:
        print("\n所有文件管理权限已存在，无需更新。")
else:
    print("未找到admin角色，请先创建角色。")

# 关闭连接
client.close()

print("\n提示: 请确保重新登录系统，以使新权限生效!") 